package com.rybbaby.tss.platform.sysTasks.entity;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Table;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.FetchType;

import com.rybbaby.tss.core.utils.StringUtils;
import com.rybbaby.tss.platform.sysAdminUser.entity.SysAdminUser;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Version;

/**
 * @description 任务队列
 *
 * @author 谢进伟
 *
 * @createDate 2017-08-23 下午3:41:48
 */
@Entity
@Table(name = "sys_tasks")
@DynamicUpdate(true)
@DynamicInsert(true)
public class SysTasks implements Serializable {

	private static final long serialVersionUID = 19971762734602L;

	/** 主键 **/
	private java.lang.String id;
	/** 创建人 **/
	private java.lang.String adminUserId;
	/** 任务编号 **/
	private java.lang.String taskNnum;
	/** 任务名称 **/
	private java.lang.String name;
	/** 任务创建时间 **/
	private java.sql.Timestamp createTime;
	/** 任务开始处理时间 **/
	private java.sql.Timestamp beginTime;
	/** 任务处理结束时间 **/
	private java.sql.Timestamp endTime;
	/** 任务处理结果 **/
	private java.lang.String result;
	/** 任务状态（1：待处理，2：处理中，3：成功完成处理，4：处理过程发生异常） **/
	private java.lang.Integer status;
	/** 版本 **/
	private java.lang.Integer version;
	/** 创建人 **/
	private SysAdminUser adminUser;

	/**
	 * 方法: 取得创建人
	 *
	 * @return SysAdminUser 创建人
	 */
	@JoinColumn(name = "adminUserId" , insertable = false , updatable = false)
	@ManyToOne(fetch = FetchType.LAZY , targetEntity = SysAdminUser.class)
	public SysAdminUser getAdminUser() {
		return this.adminUser;
	}

	/**
	 * 方法: 设置创建人
	 *
	 * @param adminUser 创建人
	 */
	public void setAdminUser(SysAdminUser adminUser) {
		this.adminUser = adminUser;
	}

	/**
	 * 方法: 取得主键
	 *
	 * @return java.lang.String 主键
	 */
	@Id
	@GeneratedValue(generator = "sys_tasksIDGenerator" , strategy = GenerationType.AUTO)
	@GenericGenerator(name = "sys_tasksIDGenerator" , strategy = "uuid")
	@Column(name = "id", nullable= false, length = 32)
	public java.lang.String getId() {
		return this.id;
	}

	/**
	 * 方法: 设置主键
	 *
	 * @param id 主键
	 */
	public void setId(java.lang.String id) {
		this.id = id;
	}

	/**
	 * 方法: 取得创建人
	 *
	 * @return java.lang.String 创建人
	 */
	@Column(name = "adminUserId", nullable= true, length = 32)
	public java.lang.String getAdminUserId() {
		return this.adminUserId;
	}

	/**
	 * 方法: 设置创建人
	 *
	 * @param adminUserId 创建人
	 */
	public void setAdminUserId(java.lang.String adminUserId) {
		this.adminUserId = StringUtils.isBlank(adminUserId) ? null : adminUserId;
	}

	/**
	 * 方法: 取得任务编号
	 *
	 * @return java.lang.String 任务编号
	 */
	@Column(name = "taskNnum", nullable= true, length = 50)
	public java.lang.String getTaskNnum() {
		return this.taskNnum;
	}

	/**
	 * 方法: 设置任务编号
	 *
	 * @param taskNnum 任务编号
	 */
	public void setTaskNnum(java.lang.String taskNnum) {
		this.taskNnum = taskNnum;
	}

	/**
	 * 方法: 取得任务名称
	 *
	 * @return java.lang.String 任务名称
	 */
	@Column(name = "name", nullable= true, length = 500)
	public java.lang.String getName() {
		return this.name;
	}

	/**
	 * 方法: 设置任务名称
	 *
	 * @param name 任务名称
	 */
	public void setName(java.lang.String name) {
		this.name = name;
	}

	/**
	 * 方法: 取得任务创建时间
	 *
	 * @return java.sql.Timestamp 任务创建时间
	 */
	@Column(name = "createTime", nullable= true, length = 19)
	public java.sql.Timestamp getCreateTime() {
		return this.createTime;
	}

	/**
	 * 方法: 设置任务创建时间
	 *
	 * @param createTime 任务创建时间
	 */
	public void setCreateTime(java.sql.Timestamp createTime) {
		this.createTime = createTime;
	}

	/**
	 * 方法: 取得任务开始处理时间
	 *
	 * @return java.sql.Timestamp 任务开始处理时间
	 */
	@Column(name = "beginTime", nullable= true, length = 19)
	public java.sql.Timestamp getBeginTime() {
		return this.beginTime;
	}

	/**
	 * 方法: 设置任务开始处理时间
	 *
	 * @param beginTime 任务开始处理时间
	 */
	public void setBeginTime(java.sql.Timestamp beginTime) {
		this.beginTime = beginTime;
	}

	/**
	 * 方法: 取得任务处理结束时间
	 *
	 * @return java.sql.Timestamp 任务处理结束时间
	 */
	@Column(name = "endTime", nullable= true, length = 19)
	public java.sql.Timestamp getEndTime() {
		return this.endTime;
	}

	/**
	 * 方法: 设置任务处理结束时间
	 *
	 * @param endTime 任务处理结束时间
	 */
	public void setEndTime(java.sql.Timestamp endTime) {
		this.endTime = endTime;
	}

	/**
	 * 方法: 取得任务处理结果
	 *
	 * @return java.lang.String 任务处理结果
	 */
	@Column(name = "result", nullable= true, length = 21845)
	public java.lang.String getResult() {
		return this.result;
	}

	/**
	 * 方法: 设置任务处理结果
	 *
	 * @param result 任务处理结果
	 */
	public void setResult(java.lang.String result) {
		this.result = result;
	}

	/**
	 * 方法: 取得任务状态（1：待处理，2：处理中，3：成功完成处理，4：处理过程发生异常）
	 *
	 * @return java.lang.Integer 任务状态（1：待处理，2：处理中，3：成功完成处理，4：处理过程发生异常）
	 */
	@Column(name = "status", nullable= true, length = 11)
	public java.lang.Integer getStatus() {
		return this.status;
	}

	/**
	 * 方法: 设置任务状态（1：待处理，2：处理中，3：成功完成处理，4：处理过程发生异常）
	 *
	 * @param status 任务状态（1：待处理，2：处理中，3：成功完成处理，4：处理过程发生异常）
	 */
	public void setStatus(java.lang.Integer status) {
		this.status = status;
	}

	/**
	 * 方法: 取得版本
	 *
	 * @return java.lang.Integer 版本
	 */
	@Version
	@Column(name = "version", nullable= true, length = 11)
	public java.lang.Integer getVersion() {
		return this.version;
	}

	/**
	 * 方法: 设置版本
	 *
	 * @param version 版本
	 */
	public void setVersion(java.lang.Integer version) {
		this.version = version;
	}
}